RubyKaigi2022 Day2
睡眠時間足りなくてめちゃくちゃ辛かったけど頑張って起きた
チャット見返せなくなるからTwitterに残すほうがいいかもなぁ
Matz Keynote
会場入りが遅くてメインホールに入れずサブホールで中継を聞いた
これを聞いてHamada.rbへの宣伝スライドを追加しようと思った。
CRubyに興味がある人への導線を作りたかった
Hamada.rbのRHCは今CRubyに興味があるけど何をしたらいいかわからない人にとって一番のきっかけになるんじゃないかと思っている
@RbHamada: RubyKaigi Effectで過去一くらいの参加者数になっていてビビってます...... ruby/debug - The best investment for your productivity
英語分からなくても分かるくらい丁寧なスライドでありがたかった
基本的に「どこを話しているのか」「今何を言おうとしているのか」が分かるスライドは落馬しにくい気がする
自分もできるだけ気をつけたい。特に情報量が多いページ
flamegraphとかは気をつけた
breakpoint はれるのめっちゃいい
lldb でデバッガに慣れた後だと同じようなインターフェースを持つ rdbg はとても手に馴染みそうと思う
プロジェクトに入れようと思った
入れたらUnicorn起動しなくなって詰んだ
バグか環境問題かも分かってないので切り分けたい
Do Pure Ruby Dream of Encrypted Binary Protocol?
ruby/debug の方を聞いていたので聞けていないんだけど、Stringの話をしていたっぽいのでとても興味がある
Implementing Object Shapes in CRuby
RuboCopの方を聞いていたので聞けていないが何をやったのか気になる
たまにTwitterで見かけていた人だった。Shopifyの人だったんだ
Make RuboCop super fast
音声トラブルでマイクが切れて何も聞こえなくなる事件発生。社のSlackで何人かメンションしてたもののまあ発表中は切ってるよねということで、上司のm_pixyがすかさず電話をかけてて流石の連携だった。電話を取るkoicが写ってああ、伝わった、と思ってホッとした。 電話のセーフネット力が高い
自分に何かあったとしても電話番号を知っている人は少ないなぁと思った
サーバーモード速くて良い
今のプロジェクトのRuboCop結構遅いのでサーバーモードで常駐させようかなと思った
Ruby x BPF in Action: How important observability is
BPF使ってみたい!!!!
str_new0 の測定に使えたりする?
BPF柔軟で何でもできる
何をしたいかは知っていないといけない
perfは実行するとそれっぽく見えるのが便利なんだよなぁ
strace は便利だけどパフォーマンスへの悪影響が大きい
カーネルのイベントについて知ることからなのかなぁ
@takkanm: @ima1zumi 私全然詳しくないですが、カーネルコードを書き換えずに外側からカーネルのイベントをフックすることができ、uprobeとかでユーザーが任意のフックポイントを埋め込めるという認識です。で、BCCというのを使えばRuby上からフックのコード(実際はC言語のプログラムの文字列)を書ける。という理解です @ima1zumi: @takkanm ありがとうございます!Ruby(で書いたC)からカーネルのイベントのフックできるの便利そう @udzura: @ima1zumi @takkanm > Ruby(で書いたC)からカーネルのイベントのフックできる その理解でOKです、補足ありがとうございます。
@udzura: @ima1zumi 何がわからなかったかを知りたいです @ima1zumi: @udzura 発表の内容というよりは自分の知識の問題かなと思ってます。例えば私はシステムコールで何を見たら何が分かるみたいな知識がないので、解決したい問題があってもBPFでどうやってその問題を詳細に調べればいいかが分からなさそうだなーと思いました。→ @ima1zumi: @udzura なので、発表にあったようにperfで当たりつけて問題切り分けた後、どのシステムコールやイベント見たらいいのかを調べないといけなくてそこがハードルになりそうと感じました @udzura: @ima1zumi なるほどー、BPFって基本的に「Linuxカーネルの中でコードを動かす仕組み」でしかなくて、カーネルで何か起こったかについてBPFを利用するとパフォーマンスやデバッグに使えるという関係性なんですよね。(だからネットワークの文脈、セキュリティの文脈など、随所でBPFが出てきて混乱しがち) @udzura: @ima1zumi パフォーマンス計測用途をObservabilityと呼ぶんですが、Observability用途は「カーネルで何が起こった時何が呼ばれるか」という知識がないと使いこなせないのはそうなんですよね... @udzura: @ima1zumi ... というところはあるんですが、カーネルの外、ユーザが書いたコードの関数に対してもイベントを引っ掛けて集計ができるのがBPFの面白いところで、今回紹介したRuby GCのようにUSDTやuprobeの用途は深掘りすると面白いかも?とも今回思いました。 How fast really is Ruby 3.x?
めちゃめちゃ良かった
3日間の中でも特に刺さった発表だった